package motor;

import motor.Agenda;
import motor.Evento;
import motor.LlamadaTel;

@SuppressWarnings("all")
public class AgendaDSL {
  public static void main(final String[] args) {
    AgendaDSL _agendaDSL = new AgendaDSL();
    _agendaDSL.run();
  }
  
  public Evento run() {
    Evento _xblockexpression = null;
    {
      Evento _agendar = this.agendar(20, "cenar");
      Evento _recordameViaLlamada = this.recordameViaLlamada(_agendar, "laverme las manos");
      this.recordameViaEmail(_recordameViaLlamada, "poner la mesa");
      Evento _agendar_1 = this.agendar(1, "dormir");
      _xblockexpression = this.recordameViaSMS(_agendar_1, "apagar la luz");
    }
    return _xblockexpression;
  }
  
  private final Agenda agenda = new Agenda();
  
  public Evento agendar(final int hora, final String nombre) {
    Evento _xblockexpression = null;
    {
      final Evento ev = new Evento(nombre, hora);
      this.agenda.agregarEvento(ev);
      _xblockexpression = ev;
    }
    return _xblockexpression;
  }
  
  public Evento recordameViaLlamada(final Evento evento, final String nombre) {
    Evento _xblockexpression = null;
    {
      LlamadaTel _llamadaTel = new LlamadaTel(nombre);
      evento.agregarRecordatorio(_llamadaTel);
      _xblockexpression = evento;
    }
    return _xblockexpression;
  }
  
  public Evento recordameViaSMS(final Evento evento, final String nombre) {
    Evento _xblockexpression = null;
    {
      LlamadaTel _llamadaTel = new LlamadaTel(nombre);
      evento.agregarRecordatorio(_llamadaTel);
      _xblockexpression = evento;
    }
    return _xblockexpression;
  }
  
  public Evento recordameViaEmail(final Evento evento, final String nombre) {
    Evento _xblockexpression = null;
    {
      LlamadaTel _llamadaTel = new LlamadaTel(nombre);
      evento.agregarRecordatorio(_llamadaTel);
      _xblockexpression = evento;
    }
    return _xblockexpression;
  }
}
